The present invention relates generally to electrically erasable, programmable read only memory (EEPROM) cells and specifically, to methods for programming thereof.
FIG. 1, to which reference is made, illustrates a typical prior art floating gate cell, comprising two diffusion areas, source 102 and drain 104, embedded in a substrate 105, between which is a channel 100. A floating gate 101 is located above but insulated from channel 100, and a gate 112 is located above but insulated from floating gate 101.
Typically, when programming the floating gate cell, programming voltages VG and VD are applied to gate 101 and drain 104, respectively, and a low source voltage VS is applied to source 102. For array applications, a row of gates are formed into a word line, and a column of drain and source are formed into bit lines along which voltages VD and VS, respectively, are supplied.
The source and drain voltages VS and VD, respectively, create a lateral field that pulls channel electrons from source 102 to drain 104. This is indicated by arrow 10. Near drain 104, a vertical field created by the gate voltage VG allows hot channel electrons to be injected (arrow 12) into floating gate 101. Once injected into floating gate 101, the electrons are distributed equally across the entire gate, increasing the threshold voltage VTH of gate 101.
Another type of non-volatile cell is the nitride, read only memory (NROM) cells are described in Applicant""s copending U.S. patent application Ser. No. 08/905,286, entitled xe2x80x9cTwo Bit Non-Volatile Electrically Erasable And Programmable Semiconductor Memory Cell Utilizing Asymmetrical Charge Trappingxe2x80x9d which was filed Aug. 1, 1997. The disclosure of the above-identified application is incorporated herein by reference.
Similar to the floating gate cell of FIG. 1, the NROM cell illustrated in FIGS. 2A and 2B, to which reference is now made, has channel 100 between two diffusion areas 102 and 104. However, unlike the floating gate cell, the NROM cell has two separated and separately chargeable areas 106 and 108. Each chargeable area defines one bit. For the dual bit cell of FIGS. 2, the separately chargeable areas 106 and 108 are found within a nitride layer 110 formed in an oxide-nitride-oxide (ONO) sandwich (layers 109, 110 and 111) underneath gate 112.
To program the left bit in area 106, the left diffusion area 102 receives the high programming voltage VD (i.e. area 102 the drain) and right diffusion area 104 is grounded (i.e. area 104 the source). Hence the electrons flow from area 104 to area 102. This is indicated by arrow 114. The channel hot electrons are then injected into the nitride layer, in area 106. The negative charge in area 106 raise the threshold voltage of the cell, if read in the reverse direction.
The opposite is true for programming area 108; the left diffusion area 102 is the source (i.e.grounded) and right diffusion area 104 is the drain (i.e. receives high programming voltage VD). The cell is therefore programmed in the opposite direction, as indicated by arrow 113, and the electrons then jump up into chargeable area 108.
For NROM cells, each bit is read in the direction opposite (a xe2x80x9creverse readxe2x80x9d) to that of its programming direction. An explanation of the reverse read process is described in U.S. patent application Ser. No. 08/905,286, mentioned above. Thus, to read the left bit stored in area 106, right diffusion area 104 is the drain and left diffusion area 102 is the source. This is known as the xe2x80x9cread throughxe2x80x9d direction, indicated by arrow 113. To read the right bit stored in area 108, the cell is read in the opposite direction, indicated by arrow 114. Thus, left diffusion area 102 is the drain and right diffusion area 104 is the source.
During the read operation, the presence of the gate and drain voltages VG and VD, respectively, induce a depletion layer 54 (FIG. 2B) and an inversion layer 52 in the center of channel 100. The drain voltage VD is large enough to induce a depletion region 55 near drain 104 which extends to the depletion layer 54 of channel 100. This is known as xe2x80x9cbarrier loweringxe2x80x9d and it causes xe2x80x9cpunch-throughxe2x80x9d of electrons from the inversion layer 52 to the drain 104.
Since area 106 is near left diffusion area 102 which, for this case, acts as the source (i.e. low voltage level), the charge state of area 106 will determine whether or not the inversion layer 52 is extended to the source 102. If enough electrons are trapped in left area 106, then the voltage thereacross will not be sufficient to extend inversion layer 52 to the source 102, the cells current will be low, and a xe2x80x9c0xe2x80x9d will be read. The opposite is true if area 106 has no charge.
Reference is now made to FIGS. 3A, 3B and 3C, which are timing diagrams of an exemplary prior art programming schedule for NROM cells. Typically, when programming an NROM cell, programming pulses 120A, 120B and 120C, consisting of programming voltages VD, VS , and VG, respectively, are applied to the cell. Programming pulses 120 are then followed by program verify pulses 122A, 122B and 122C, consisting of read voltages VD , VS, and VG, respectively, during which time the cell is read.
If there are enough electrons trapped in the bit, a xe2x80x9c0xe2x80x9d is read, and the cell is verified as programmed. If, however, during the read operation, the inversion layer is not strong enough to prevent the current flow through the channel, than the bit will be read as a xe2x80x9c1xe2x80x9d, and the cell will fail program verification.
The sequence of pulses 120 and 122 are repeatedly applied until the effect of the charged trapped in area 106 (or 108) has reached the desired level and the cell is considered xe2x80x9cprogrammedxe2x80x9d. The programming process is then terminated.
Due to ever demanding manufacturing requirements, the semiconductor industry is continuously searching for ways to improve the programming process. There exist two contradicting programming requirements; 1) to increase the programming speed, thereby reducing the cost of testing the part, and 2) to improve the control of the final programmed threshold, thereby enhancing product reliability.
The first requirement can easily be met just by increasing the drain and gate potentials to their maximum values. However, this strategy will not meet the second requirement due to many process and environmental parameters that affect the programming rate and its variations.
To achieve the second requirement, there are two basic options, controlling the length of the programming sequence, and/or stepping the amplitude of the gate voltage potential.
The article xe2x80x9cNonvolatile Multilevel Memories for Digital Applicationsxe2x80x9d, published in the IEEE Magazine on Dec. 12, 1998, discusses a number of proposed methods for programming multi-level floating gate circuits, including that of controlling the programming time length. One such method is discussed In the section Programming and Accuracy, 2) Drain Voltage Programming, as follows: 1) a constant gate voltage is set, 2) per bit level of the multi-level cell, a constant drain voltage is determined, and 3) the cell is programmed for a predetermined time period. At the completion of the time period, the programming is terminated. Alternately, the article describes an approach whereby after each programming pulse, the threshold voltage VTH is verified. Upon reaching the target threshold voltage, programming is terminated.
U.S. Pat. No. 5,523,972 describes a floating gate method that entails incrementally increasing the programming gate voltage VG, while keeping other factors constant (e.g. source and drain voltages, VS and VD , respectively). In the described programming algorithm, each cell is checked to determine whether or not it has reached the desired state. If not, a programming gate voltage pulse of a slightly higher voltage is applied to the cell. The charge level is checked again, and if the desired state has not yet been reached, the voltage is raised again and applied. This process is repeated until all the cells reach the desired level.
U.S. Pat. No. 5,172,338 describes a programming algorithm similar to that described in the U.S. Pat. No. 5,523,972, however, on a per cell basis. Every cell that reaches the desired level does not receive the drain voltage of the next step. This sequence is continued until the last bit of the byte word/group is programmed.
As explained in both xe2x80x9cNonvolatile Multilevel Memories for Digital Applicationsxe2x80x9d and U.S. Pat. No. 5,523,972, in floating gate cells, the relationship between xcex94VG and xcex94VTH is linear. As such, control of programming is relatively precise since, for every change in the gate voltage VG. there is a similar change in the threshold voltage VTH of the cell.
Nonetheless, there are many factors influencing the programming speed, and consequently, the programming speed may vary from cell to cell even when the same level of programming voltage is applied thereto. FIG. 4, to which reference is now made, illustrates the typical variation of programming time for a normal population of memory cells. Point 126 depicts the cell with the fastest programming speed, while point 128 represents the cell with the slowest programming speed. The variance in time between point 126 to point 128 can be as large as 500xc3x97.
The wide variation of programming speeds creates problems during programming of memory cell arrays. These arrays may contain many millions of memory cells, each with its own distinct programming speed. Some cells may reach their programmed level in a shorter time than needed for other cells to reach their programmed levels. Thus, the programming process needs to be terminated for some cells, while for other, it needs to be continued.
Some of the factors influencing the programming speed in floating gate cells are: variations in process parameters such as channel length, gate coupling ratio, drain coupling ratio, source resistance variations (array effect) and channel doping variations. Another factor influencing the program rate is the temperature of the product during programming; generally, the lower the temperature, the faster the programming rate.
In NROM cells, the parameters that affect the programming speed are: the ONO thickness, the channel length, the channel doping and the temperature. For dual bit NROM cells, the programming state of one bit affects the programming speed of the other bit.
When an improper programming algorithm is used, some cells may receive too high programming voltages or may be programmed for too long. In such instances, an over-abundance of charge is introduced into the gate or retention layer (NROM) and the memory cell is xe2x80x9cover-programmedxe2x80x9d. In floating gate cells, over-programming deteriorates the quality of the oxide layer (reference number 109, FIG. 1), creating reliability problems due to the degradation of the quality of the product. Furthermore, continuing to apply high voltage pulses once the unit cells have already reached the programmed level wastes power and creates a power dissipation problem.
Moreover, as to be described below, in multi-level floating gate products, over-programming can lead to information read failures. Reference is now made to FIG. 5, a graph illustrating the different threshold voltage levels comprised within a multi-level floating gate cell. As depicted in the FIG. 5, each bit in the multi-level floating gate cell is defined by a predefined region of voltage threshold VTH. As an example, the first bit lies in region 132, (to the left of line W), while the second bit lies in region 134 (from line W to line X), the third bit in region 136 (from line X to line Y), and so on. When a cell is over-programmed, the resultant threshold voltage may overshoot the desired region, thus leading to a read error or failure.
Further problems arise when programming both bits of multi-bit memory cells, such as the two-bit NROM cell. Once the first bit is programmed, the threshold voltage VTH of the cell is raised, and consequently, the programming of the second bit of the cell is slower.
In NROM cells, in addition to the stated problems connected with breakdown of the oxide layer and unnecessary dissipation of power, over-programming creates different problems. As explained below in connection with FIG. 6, over-programming results in quality deterioration and reliability degradation, as well as read failures in two-bit cells.
FIGS. 6A, 6B, 6C and 6D, to which reference is now made, are exploded views of the NROM cell depicted in FIGS. 2A and 2B. It is noted that the shape of the trapped charge in chargeable areas 106 and 108 range from a narrow pocket, depicted as 106N and 108N, to an average pocket (i.e. 106A and 108A), to an even wider pocket (i.e. 106W and 108W) with a xe2x80x9ctailxe2x80x9d 44.
Applicants note that tail 44, which is farther from the bit line than the bulk of the trapped charge, is generally not removable during erasure and thus, reduces the ability of the NROM cell to withstand a large number of program and erase cycles. Typically, erasure depletes only the charge concentration closest to the diffusion area. Thus, if the distribution pocket is too wide, the tail 44 of the trapped charge will not erase, and with each progressive erase, more and more charge will remain in the retention section, even after erasures (FIG. 6D).
The trapped charge in tail 44 acts as partially programmed charge. It is due to the trapped charge in tail 44 that fewer programming pulses are required to achieve the programmed threshold voltage level (since the bit is already, in effect, partially programmed).
Furthermore, the accumulation of trapped negative charge far from the junction increases the threshold voltage level, which affects the reverse read, making it difficult to distinguish the first bit from the second bit and creating read failures. In order to compensate, the erase operation accumulates extra positive charge close to the junction, which makes the erase time take longer.
Unfortunately, prior art methods of gradually increasing the programming gate voltage VG are not effective for NROM cells, and tend to produce the following two problems:
1. In NROM products, increases in the gate voltage VG do not linearly correlate to increases in the threshold voltage VTH, and the effect of the increases varies from cell to cell. This causes a lack of precise programming control, and an incurred risk of over programming.
2. In order to ensure a reasonable yield rate, meeting the programming rate requirement, the drain voltage VD potential must be high, creating trapped charge regions distant from the junction.
The above two problems result in reduction in the endurance of the product, increase in the charge loss and reduction in yield.
In regard to the first problem, reference is now made to FIG. 7, an electrical schematic of a portion of an NROM array. The depicted circuit includes a bit line power supply VPPS, a select transistor 152, resistors R1 and R2, and an NROM cell 154. Resistors R1 and R2 denote the native resistance of the wire in the depicted array. Transistor 152 is a select transistor used to select a bit line of the array. Programming current IPR flows throughout the entire circuit. The voltage drops across the channels of transistor 152 and cell 154 are designated as VDS-SEL and VDS, respectively.
In NROM cells, small increases in the programming gate voltage VG greatly influences the programming current IPR. In a chain reaction effect, when the programming gate voltage VG is stepped, programming current IPR increases, which causes an increase in voltage drops VDS-SEL and VDS and an increase in the voltage drops along resistors R1 and R2. Hence, with all the different factors changing, there is no clear linear relationship between the stepped gate voltage VG and the threshold voltage VTH, and therefore, no precise control over the programming process. As a further complication, the reduction in VDS increases the programming time exponentially.
Reduction in the incremental increase of the gate voltage VG can alleviate part of the control problem, but it will dramatically increase the programming time. Further control improvement can be achieved by increasing the dynamic range of the gate voltage VG. Unfortunately, there are resultant difficulties at both ends of the dynamic range.
Low gate voltage VG results in cycling degradation. So therefore, the desired gate voltage VG is set relatively high, i.e. 8-10V. Further increases in gate voltage VG, such as over 10V, require special processes and put severe limitations on the scaling of the ONO thickness due to charging by tunneling. For example, a 180 xc3x85 ONO of the 0.5 xcexcm process will experience tunneling charging for voltages over 12V.
The second problem noted above (high drain voltage VD) creates even more severe limitations on the stepped gate voltage VG approach. When programming according to stepping of the gate voltage VG, the programming drain voltage VD must be fixed and high in order to cover a large dynamic range. Using a high programming drain voltage VD creates a large lateral field and a wide pinch-off regime, yielding a wide trapped charge region. Accordingly, the resultant product is the undesirable tail 44, which drastically reduces the product""s endurance.
Hence, due to the first problem noted above, using the gate voltage VG as a dynamic parameter for controlling programming is very limited in range.
In conclusion, in NROM cells, stepping the programming gate voltage VG does not provide tight programming control and is not effective in preventing over-programming and eventual degradation of the product""s quality.
As can be understood from the above, when prior art programming algorithms are applied to the NROM cell, they do not sufficiently provide the abilities to produce increased programming speed while maintaining tight programming control. Applicants have found a need for an NROM programming algorithm which executes these functions over a wide range of programming parameters, thus avoiding the dangers of over-programming and its resultant reduction in product reliability.
A method for programming a reference cell of a memory array includes the steps of programming the reference cell with large programming steps until a threshold voltage level of the reference cell is above an interim target level and programming the reference cell with small programming steps until the threshold voltage level is above a final target level.
Specifically, there is provided, in accordance with a preferred embodiment of the present invention, a method for programming a reference cell of a memory array which uses programming pulses. If a threshold voltage of the reference cell is below an interim target level, the method includes the step of raising a drain voltage for a next programming pulse and otherwise, setting the drain voltage for the next programming pulse at a fixed level not higher than a current level. Programming pulses are provided using the fixed drain voltage level until the threshold voltage level is at or above a final target level above the interim target level.
Additionally, in accordance with a preferred embodiment of the present invention, for the step of providing, the programming pulses have a different duration than the programming pulse for the step of raising.
Moreover, in accordance with a preferred embodiment of the present invention, the interim target level is in the range of 100-400 mV below the final target level.
Alternatively, in accordance with a preferred embodiment of the present invention, the interim target level is below the final target level by an amount generally not smaller than an expected threshold voltage change due to the programming pulses of the raising step.
Further, in accordance with a preferred embodiment of the present invention, the method also includes the step of measuring the programmed threshold voltage level after each programming pulse.
Still further, in accordance with a preferred embodiment of the present invention, the method also includes the step of determining after each programming pulse if the programmed threshold voltage is above or below the target level.
There is also provided, in accordance with a further preferred embodiment of the present invention, a method for programming a reference cell of a memory array which includes the steps of fast programming of the reference cell until a threshold voltage level of the reference cell is above an interim target level and slow programming of the reference cell until the threshold voltage level is above a final target level which is above the interim target level.
Additionally, in accordance with a preferred embodiment of the present invention, the fast programming comprises providing programming pulses and changing a drain voltage level between programming pulses.
Moreover, in accordance with a preferred embodiment of the present invention, the slow programming comprises maintaining a generally constant drain voltage level between programming pulses.
Further, in accordance with a preferred embodiment of the present invention, the steps of programming include providing programming pulses and also include the step of measuring the threshold voltage level of the reference cell after each programming pulse.
There is still further provided, in accordance with a preferred embodiment of the present invention, a method for programming a reference cell of a memory array which includes the steps of programming the reference cell with large programming steps until a threshold voltage level of the reference cell is above an interim target level and programming the reference cell with small programming steps until the threshold voltage level is above a final target level.
Moreover, in accordance with a preferred embodiment of the present invention, the programming with large programming steps includes providing programming pulses and changing a drain voltage level between programming pulses.
Finally, in accordance with a preferred embodiment of the present invention, the programming with small programming steps comprises maintaining a generally constant drain voltage level between programming pulses.